There are advantages to caching content closer to users, including improved responsiveness to user requests and control of costs driven by network peaks; however, existing content caching schemes do not perform well. Existing content caching techniques are very limited in their ability to predict future consumption. Furthermore, existing content caching techniques have other associated problems as well.
One approach to content caching is to avoid prediction altogether. This is typically done by asking the user to search, find, select, and specify what content they will want in future. This approach is used by current personal video recorders to cache broadcast television content on behalf of users. Disadvantageously, however, the limited willingness of users to take on the additional work associated with this approach makes this approach scale poorly.
Another common content caching technique, used in transparent web caches, makes no attempt to predict content consumption; rather, a copy of content that has been requested in the past is held for a period of time, in case it is requested again. In the context of caching on behalf of single users and video content this performs extremely poorly because people rarely want to watch video content they have seen in the past (which is the only content that this caching technique will hold). Even where caching occurs on behalf of many users, this approach to caching may recognize the value of caching an item too late to be of use in reducing peak demands.
Another approach to content caching, which is used in some video-on-demand systems, is to assume that all users are identical. In this approach, a determination is made as to which content items are most in demand in aggregate, and those content items are then cached for all users. While this approach may work fairly well, failure to recognize differences between users, and that user preferences are not constant over time, produces undesirable caching results which may unnecessarily waste network resources.
Another approach to content caching is to capture the history of user viewing at particular points in time and find content items that are similar to those watched by the user (a process commonly referred to as item-to-item collaborative filtering). An index of those content items is then given back to the user who will save them to a local cache (e.g., using a DVR/PVR) when they appear in the broadcast schedule. Disadvantageously, however, this approach has many deficiencies. First, caching does not occur proactively to de-load the network; rather, it occurs opportunistically, whenever a “target” content item appears in the broadcast schedule. Second, such caching cannot deal with short term variation in the preferences of end-users because it assumes a single static preference profile.
Furthermore, in addition to the various problems associated with existing content caching techniques, caching of content closer to users becomes an increasingly important problem both as the amount of available content increases (fragmenting the audience) and as users move towards delivery modes such as unicast video-on-demand. Where a service provider is delivering personalized services to a user (e.g., video-on-demand in response to requests from the user, or a personalized channel for the user), content caching may be improved by predicting which content is most likely to be useful to that user and moving that content closer to the user before they need it.